<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>apply_sheet_of_light_calibration [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_3dreconstruction.html">3D Reconstruction</a> / <a href="toc_3dreconstruction_sheetoflight.html">Sheet of Light</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">apply_sheet_of_light_calibration</span><span data-if="c" style="display:none;">T_apply_sheet_of_light_calibration</span><span data-if="cpp" style="display:none;">ApplySheetOfLightCalibration</span><span data-if="dotnet" style="display:none;">ApplySheetOfLightCalibration</span><span data-if="python" style="display:none;">apply_sheet_of_light_calibration</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">apply_sheet_of_light_calibration</span><span data-if="c" style="display:none;">T_apply_sheet_of_light_calibration</span><span data-if="cpp" style="display:none;">ApplySheetOfLightCalibration</span><span data-if="dotnet" style="display:none;">ApplySheetOfLightCalibration</span><span data-if="python" style="display:none;">apply_sheet_of_light_calibration</span></code> — Apply the calibration transformations to the input disparity image.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>apply_sheet_of_light_calibration</b>(<a href="#Disparity"><i>Disparity</i></a> :  : <a href="#SheetOfLightModelID"><i>SheetOfLightModelID</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_apply_sheet_of_light_calibration</b>(const Hobject <a href="#Disparity"><i>Disparity</i></a>, const Htuple <a href="#SheetOfLightModelID"><i>SheetOfLightModelID</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>ApplySheetOfLightCalibration</b>(const HObject&amp; <a href="#Disparity"><i>Disparity</i></a>, const HTuple&amp; <a href="#SheetOfLightModelID"><i>SheetOfLightModelID</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>ApplySheetOfLightCalibration</b>(const HSheetOfLightModel&amp; <a href="#SheetOfLightModelID"><i>SheetOfLightModelID</i></a>) const</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>::<b>ApplySheetOfLightCalibration</b>(const HImage&amp; <a href="#Disparity"><i>Disparity</i></a>) const</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>ApplySheetOfLightCalibration</b>(<a href="HObject.html">HObject</a> <a href="#Disparity"><i>disparity</i></a>, <a href="HTuple.html">HTuple</a> <a href="#SheetOfLightModelID"><i>sheetOfLightModelID</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>.<b>ApplySheetOfLightCalibration</b>(<a href="HSheetOfLightModel.html">HSheetOfLightModel</a> <a href="#SheetOfLightModelID"><i>sheetOfLightModelID</i></a>)</code></p>
<p>
<code>void <a href="HSheetOfLightModel.html">HSheetOfLightModel</a>.<b>ApplySheetOfLightCalibration</b>(<a href="HImage.html">HImage</a> <a href="#Disparity"><i>disparity</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>apply_sheet_of_light_calibration</b>(<a href="#Disparity"><i>disparity</i></a>: HObject, <a href="#SheetOfLightModelID"><i>sheet_of_light_model_id</i></a>: HHandle) -&gt; None</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">apply_sheet_of_light_calibration</span><span data-if="c" style="display:none">apply_sheet_of_light_calibration</span><span data-if="cpp" style="display:none">ApplySheetOfLightCalibration</span><span data-if="com" style="display:none">ApplySheetOfLightCalibration</span><span data-if="dotnet" style="display:none">ApplySheetOfLightCalibration</span><span data-if="python" style="display:none">apply_sheet_of_light_calibration</span></code> reads the disparity
image <a href="#Disparity"><i><code><span data-if="hdevelop" style="display:inline">Disparity</span><span data-if="c" style="display:none">Disparity</span><span data-if="cpp" style="display:none">Disparity</span><span data-if="com" style="display:none">Disparity</span><span data-if="dotnet" style="display:none">disparity</span><span data-if="python" style="display:none">disparity</span></code></i></a>, stores it to the sheet-of-light model specified
by <a href="#SheetOfLightModelID"><i><code><span data-if="hdevelop" style="display:inline">SheetOfLightModelID</span><span data-if="c" style="display:none">SheetOfLightModelID</span><span data-if="cpp" style="display:none">SheetOfLightModelID</span><span data-if="com" style="display:none">SheetOfLightModelID</span><span data-if="dotnet" style="display:none">sheetOfLightModelID</span><span data-if="python" style="display:none">sheet_of_light_model_id</span></code></i></a> and applies the calibration transformation
to this image, in order to compute the calibrated coordinates of the
reconstructed 3D surface points. The resulting calibrated coordinates can
be retrieved from the model by using 该算子
<a href="get_sheet_of_light_result.html"><code><span data-if="hdevelop" style="display:inline">get_sheet_of_light_result</span><span data-if="c" style="display:none">get_sheet_of_light_result</span><span data-if="cpp" style="display:none">GetSheetOfLightResult</span><span data-if="com" style="display:none">GetSheetOfLightResult</span><span data-if="dotnet" style="display:none">GetSheetOfLightResult</span><span data-if="python" style="display:none">get_sheet_of_light_result</span></code></a>. The corresponding 3D object model
can be retrieved with <a href="get_sheet_of_light_result_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">get_sheet_of_light_result_object_model_3d</span><span data-if="c" style="display:none">get_sheet_of_light_result_object_model_3d</span><span data-if="cpp" style="display:none">GetSheetOfLightResultObjectModel3d</span><span data-if="com" style="display:none">GetSheetOfLightResultObjectModel3d</span><span data-if="dotnet" style="display:none">GetSheetOfLightResultObjectModel3d</span><span data-if="python" style="display:none">get_sheet_of_light_result_object_model_3d</span></code></a>.
Note that prior to the next call of <code><span data-if="hdevelop" style="display:inline">apply_sheet_of_light_calibration</span><span data-if="c" style="display:none">apply_sheet_of_light_calibration</span><span data-if="cpp" style="display:none">ApplySheetOfLightCalibration</span><span data-if="com" style="display:none">ApplySheetOfLightCalibration</span><span data-if="dotnet" style="display:none">ApplySheetOfLightCalibration</span><span data-if="python" style="display:none">apply_sheet_of_light_calibration</span></code>
for a disparity image of smaller height, <a href="reset_sheet_of_light_model.html"><code><span data-if="hdevelop" style="display:inline">reset_sheet_of_light_model</span><span data-if="c" style="display:none">reset_sheet_of_light_model</span><span data-if="cpp" style="display:none">ResetSheetOfLightModel</span><span data-if="com" style="display:none">ResetSheetOfLightModel</span><span data-if="dotnet" style="display:none">ResetSheetOfLightModel</span><span data-if="python" style="display:none">reset_sheet_of_light_model</span></code></a>
should be called.
</p>
<p>The disparity image <a href="#Disparity"><i><code><span data-if="hdevelop" style="display:inline">Disparity</span><span data-if="c" style="display:none">Disparity</span><span data-if="cpp" style="display:none">Disparity</span><span data-if="com" style="display:none">Disparity</span><span data-if="dotnet" style="display:none">disparity</span><span data-if="python" style="display:none">disparity</span></code></i></a> may have been acquired previously
by using 该算子 <a href="measure_profile_sheet_of_light.html"><code><span data-if="hdevelop" style="display:inline">measure_profile_sheet_of_light</span><span data-if="c" style="display:none">measure_profile_sheet_of_light</span><span data-if="cpp" style="display:none">MeasureProfileSheetOfLight</span><span data-if="com" style="display:none">MeasureProfileSheetOfLight</span><span data-if="dotnet" style="display:none">MeasureProfileSheetOfLight</span><span data-if="python" style="display:none">measure_profile_sheet_of_light</span></code></a> or by an
image acquisition device, which directly provides disparity values and
works according to the sheet-of-light technique.
</p>
<p>In order to compute the calibrated coordinates, the parameters listed
below must have been set for the sheet-of-light model with the help of
该算子 <a href="set_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></code></a>:
</p>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'calibration'</span><span data-if="c" style="display:none">"calibration"</span><span data-if="cpp" style="display:none">"calibration"</span><span data-if="com" style="display:none">"calibration"</span><span data-if="dotnet" style="display:none">"calibration"</span><span data-if="python" style="display:none">"calibration"</span></i>:</b></dt>
<dd>
<p>

extent of the calibration transformation which shall be applied
to the disparity image. <i><span data-if="hdevelop" style="display:inline">'calibration'</span><span data-if="c" style="display:none">"calibration"</span><span data-if="cpp" style="display:none">"calibration"</span><span data-if="com" style="display:none">"calibration"</span><span data-if="dotnet" style="display:none">"calibration"</span><span data-if="python" style="display:none">"calibration"</span></i> must be set to
<i><span data-if="hdevelop" style="display:inline">'xz'</span><span data-if="c" style="display:none">"xz"</span><span data-if="cpp" style="display:none">"xz"</span><span data-if="com" style="display:none">"xz"</span><span data-if="dotnet" style="display:none">"xz"</span><span data-if="python" style="display:none">"xz"</span></i>, <i><span data-if="hdevelop" style="display:inline">'xyz'</span><span data-if="c" style="display:none">"xyz"</span><span data-if="cpp" style="display:none">"xyz"</span><span data-if="com" style="display:none">"xyz"</span><span data-if="dotnet" style="display:none">"xyz"</span><span data-if="python" style="display:none">"xyz"</span></i> or <i><span data-if="hdevelop" style="display:inline">'offset_scale'</span><span data-if="c" style="display:none">"offset_scale"</span><span data-if="cpp" style="display:none">"offset_scale"</span><span data-if="com" style="display:none">"offset_scale"</span><span data-if="dotnet" style="display:none">"offset_scale"</span><span data-if="python" style="display:none">"offset_scale"</span></i>. Refer to
<a href="set_sheet_of_light_param.html"><code><span data-if="hdevelop" style="display:inline">set_sheet_of_light_param</span><span data-if="c" style="display:none">set_sheet_of_light_param</span><span data-if="cpp" style="display:none">SetSheetOfLightParam</span><span data-if="com" style="display:none">SetSheetOfLightParam</span><span data-if="dotnet" style="display:none">SetSheetOfLightParam</span><span data-if="python" style="display:none">set_sheet_of_light_param</span></code></a> for details on this parameter.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'camera_parameter'</span><span data-if="c" style="display:none">"camera_parameter"</span><span data-if="cpp" style="display:none">"camera_parameter"</span><span data-if="com" style="display:none">"camera_parameter"</span><span data-if="dotnet" style="display:none">"camera_parameter"</span><span data-if="python" style="display:none">"camera_parameter"</span></i>:</b></dt>
<dd>
<p>

the internal parameters of the camera used for the measurement.
This pose is required when the calibration extent has been set
to <i><span data-if="hdevelop" style="display:inline">'xyz'</span><span data-if="c" style="display:none">"xyz"</span><span data-if="cpp" style="display:none">"xyz"</span><span data-if="com" style="display:none">"xyz"</span><span data-if="dotnet" style="display:none">"xyz"</span><span data-if="python" style="display:none">"xyz"</span></i> or <i><span data-if="hdevelop" style="display:inline">'xz'</span><span data-if="c" style="display:none">"xz"</span><span data-if="cpp" style="display:none">"xz"</span><span data-if="com" style="display:none">"xz"</span><span data-if="dotnet" style="display:none">"xz"</span><span data-if="python" style="display:none">"xz"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'camera_pose'</span><span data-if="c" style="display:none">"camera_pose"</span><span data-if="cpp" style="display:none">"camera_pose"</span><span data-if="com" style="display:none">"camera_pose"</span><span data-if="dotnet" style="display:none">"camera_pose"</span><span data-if="python" style="display:none">"camera_pose"</span></i>:</b></dt>
<dd>
<p>

the pose of the world coordinate system relative to the camera
coordinate system. This pose is required when the calibration extent
has been set to <i><span data-if="hdevelop" style="display:inline">'xyz'</span><span data-if="c" style="display:none">"xyz"</span><span data-if="cpp" style="display:none">"xyz"</span><span data-if="com" style="display:none">"xyz"</span><span data-if="dotnet" style="display:none">"xyz"</span><span data-if="python" style="display:none">"xyz"</span></i> or <i><span data-if="hdevelop" style="display:inline">'xz'</span><span data-if="c" style="display:none">"xz"</span><span data-if="cpp" style="display:none">"xz"</span><span data-if="com" style="display:none">"xz"</span><span data-if="dotnet" style="display:none">"xz"</span><span data-if="python" style="display:none">"xz"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'lightplane_pose'</span><span data-if="c" style="display:none">"lightplane_pose"</span><span data-if="cpp" style="display:none">"lightplane_pose"</span><span data-if="com" style="display:none">"lightplane_pose"</span><span data-if="dotnet" style="display:none">"lightplane_pose"</span><span data-if="python" style="display:none">"lightplane_pose"</span></i>:</b></dt>
<dd>
<p>

the pose of the light-plane coordinate system relative to the
world coordinate system. The light-plane
coordinate system must be chosen so that its plane z=0 coincides
with the light plane described by the light line projector.
This pose is required when the calibration extent has been set
to <i><span data-if="hdevelop" style="display:inline">'xyz'</span><span data-if="c" style="display:none">"xyz"</span><span data-if="cpp" style="display:none">"xyz"</span><span data-if="com" style="display:none">"xyz"</span><span data-if="dotnet" style="display:none">"xyz"</span><span data-if="python" style="display:none">"xyz"</span></i> or <i><span data-if="hdevelop" style="display:inline">'xz'</span><span data-if="c" style="display:none">"xz"</span><span data-if="cpp" style="display:none">"xz"</span><span data-if="com" style="display:none">"xz"</span><span data-if="dotnet" style="display:none">"xz"</span><span data-if="python" style="display:none">"xz"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'movement_pose'</span><span data-if="c" style="display:none">"movement_pose"</span><span data-if="cpp" style="display:none">"movement_pose"</span><span data-if="com" style="display:none">"movement_pose"</span><span data-if="dotnet" style="display:none">"movement_pose"</span><span data-if="python" style="display:none">"movement_pose"</span></i>:</b></dt>
<dd>
<p>

a pose representing the movement of the object between two successive
profile images with respect to the measurement system built by the
camera and the laser. This pose is required when the calibration
extent has been set to <i><span data-if="hdevelop" style="display:inline">'xyz'</span><span data-if="c" style="display:none">"xyz"</span><span data-if="cpp" style="display:none">"xyz"</span><span data-if="com" style="display:none">"xyz"</span><span data-if="dotnet" style="display:none">"xyz"</span><span data-if="python" style="display:none">"xyz"</span></i>. It is ignored when the
calibration extent has been set to <i><span data-if="hdevelop" style="display:inline">'xz'</span><span data-if="c" style="display:none">"xz"</span><span data-if="cpp" style="display:none">"xz"</span><span data-if="com" style="display:none">"xz"</span><span data-if="dotnet" style="display:none">"xz"</span><span data-if="python" style="display:none">"xz"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'scale'</span><span data-if="c" style="display:none">"scale"</span><span data-if="cpp" style="display:none">"scale"</span><span data-if="com" style="display:none">"scale"</span><span data-if="dotnet" style="display:none">"scale"</span><span data-if="python" style="display:none">"scale"</span></i>:</b></dt>
<dd><p>

with this parameter you can scale the 3D coordinates X, Y and Z
that result when applying the calibration transformations to the
disparity image. <i><span data-if="hdevelop" style="display:inline">'scale'</span><span data-if="c" style="display:none">"scale"</span><span data-if="cpp" style="display:none">"scale"</span><span data-if="com" style="display:none">"scale"</span><span data-if="dotnet" style="display:none">"scale"</span><span data-if="python" style="display:none">"scale"</span></i> must be specified as the ratio
<i>desired unit/original unit</i>. The original unit is determined
by the coordinates of the calibration object. If the original unit is
meters (which is the case if you use the standard calibration plate),
you can set the desired unit directly by selecting 'm', 'cm', 'mm'
or 'um' for the parameter Scale. By default, <i><span data-if="hdevelop" style="display:inline">'scale'</span><span data-if="c" style="display:none">"scale"</span><span data-if="cpp" style="display:none">"scale"</span><span data-if="com" style="display:none">"scale"</span><span data-if="dotnet" style="display:none">"scale"</span><span data-if="python" style="display:none">"scale"</span></i> is set
to 1.0.
</p></dd>
</dl>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<p>This operator modifies the state of the following input parameter:</p>
<ul><li><a href="#SheetOfLightModelID"><span data-if="hdevelop" style="display:inline">SheetOfLightModelID</span><span data-if="c" style="display:none">SheetOfLightModelID</span><span data-if="cpp" style="display:none">SheetOfLightModelID</span><span data-if="com" style="display:none">SheetOfLightModelID</span><span data-if="dotnet" style="display:none">sheetOfLightModelID</span><span data-if="python" style="display:none">sheet_of_light_model_id</span></a></li></ul>
<p>During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Disparity" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Disparity</span><span data-if="c" style="display:none">Disparity</span><span data-if="cpp" style="display:none">Disparity</span><span data-if="com" style="display:none">Disparity</span><span data-if="dotnet" style="display:none">disparity</span><span data-if="python" style="display:none">disparity</span></code></b> (input_object)  </span><span>singlechannelimage <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject</span> (real)</span>
</div>
<p class="pardesc">Height or range image to be calibrated.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="SheetOfLightModelID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">SheetOfLightModelID</span><span data-if="c" style="display:none">SheetOfLightModelID</span><span data-if="cpp" style="display:none">SheetOfLightModelID</span><span data-if="com" style="display:none">SheetOfLightModelID</span><span data-if="dotnet" style="display:none">sheetOfLightModelID</span><span data-if="python" style="display:none">sheet_of_light_model_id</span></code></b> (input_control, state is modified)  </span><span>sheet_of_light_model <code>→</code> <span data-if="dotnet" style="display:none"><a href="HSheetOfLightModel.html">HSheetOfLightModel</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the sheet-of-light model.</p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
* ...
* Read an already acquired disparity map from file
read_image (Disparity, 'sheet_of_light/connection_rod_disparity.tif')
*
* Create a model and set the required parameters
gen_rectangle1 (ProfileRegion, 120, 75, 195, 710)
create_sheet_of_light_model (ProfileRegion, ['min_gray','num_profiles', \
                             'ambiguity_solving'], [70,290,'first'], \
                              SheetOfLightModelID)
set_sheet_of_light_param (SheetOfLightModelID, 'calibration', 'xyz')
set_sheet_of_light_param (SheetOfLightModelID, 'scale', 'mm')
set_sheet_of_light_param (SheetOfLightModelID, 'camera_parameter', \
                          CameraParameter)
set_sheet_of_light_param (SheetOfLightModelID, 'camera_pose', CameraPose)
set_sheet_of_light_param (SheetOfLightModelID, 'lightplane_pose', \
                          LightPlanePose)
set_sheet_of_light_param (SheetOfLightModelID, 'movement_pose', \
                          MovementPose)
*
* Apply the calibration transforms and
* get the resulting calibrated coordinates
apply_sheet_of_light_calibration (Disparity, SheetOfLightModelID)
get_sheet_of_light_result (X, SheetOfLightModelID, 'x')
get_sheet_of_light_result (Y, SheetOfLightModelID, 'y')
get_sheet_of_light_result (Z, SheetOfLightModelID, 'z')
*
</pre>
<h2 id="sec_result">结果</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">apply_sheet_of_light_calibration</span><span data-if="c" style="display:none">apply_sheet_of_light_calibration</span><span data-if="cpp" style="display:none">ApplySheetOfLightCalibration</span><span data-if="com" style="display:none">ApplySheetOfLightCalibration</span><span data-if="dotnet" style="display:none">ApplySheetOfLightCalibration</span><span data-if="python" style="display:none">apply_sheet_of_light_calibration</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    
if the given parameters are correct.
Otherwise, an exception will be raised.</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="get_sheet_of_light_result.html"><span data-if="hdevelop" style="display:inline">get_sheet_of_light_result</span><span data-if="c" style="display:none">get_sheet_of_light_result</span><span data-if="cpp" style="display:none">GetSheetOfLightResult</span><span data-if="com" style="display:none">GetSheetOfLightResult</span><span data-if="dotnet" style="display:none">GetSheetOfLightResult</span><span data-if="python" style="display:none">get_sheet_of_light_result</span></a></code>, 
<code><a href="get_sheet_of_light_result_object_model_3d.html"><span data-if="hdevelop" style="display:inline">get_sheet_of_light_result_object_model_3d</span><span data-if="c" style="display:none">get_sheet_of_light_result_object_model_3d</span><span data-if="cpp" style="display:none">GetSheetOfLightResultObjectModel3d</span><span data-if="com" style="display:none">GetSheetOfLightResultObjectModel3d</span><span data-if="dotnet" style="display:none">GetSheetOfLightResultObjectModel3d</span><span data-if="python" style="display:none">get_sheet_of_light_result_object_model_3d</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
3D Metrology</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
